package cn.lili.modules.search.service;

import java.util.List;

import org.springframework.data.elasticsearch.core.SearchPage;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.lili.common.vo.PageVO;
import cn.lili.modules.search.entity.dos.GoodsIndex;
import cn.lili.modules.search.entity.dos.GoodsRelatedInfo;
import cn.lili.modules.search.entity.dto.GoodsSearchDTO;

public interface GoodsSearchService {
	/**
     * 商品搜索
     *
     * @param searchDTO 搜索参数
     * @param pageVo    分页参数
     * @return 搜索结果
     */
    SearchPage<GoodsIndex> searchGoods(GoodsSearchDTO searchDTO, PageVO pageVo);

    /**
     * 商品搜索
     *
     * @param searchDTO 搜索参数
     * @param pageVo    分页参数
     * @return 搜索结果
     */
    Page<GoodsIndex> searchGoodsByPage(GoodsSearchDTO searchDTO, PageVO pageVo);

    /**
     * 获取筛选器
     *
     * @param goodsSearch 搜索条件
     * @param pageVo      分页参数
     * @return 商品关联
     */
    GoodsRelatedInfo getSelector(GoodsSearchDTO goodsSearch);

    /**
     * 根据SkuID列表获取商品
     *
     * @param skuIds SkuId列表
     * @return 商品列表
     */
    List<GoodsIndex> getGoodsBySkuIds(List<String> skuIds, PageVO pageVo);

    /**
     * 根据id获取商品索引
     *
     * @param id 商品skuId
     * @return 商品索引
     */
    GoodsIndex getGoodsBySkuId(String skuId);
}
